[re:Invent 2019] EC2 Image Builder のパイプラインを AWS CLI で実行してみた #reinvent
こんにちは、コンサル部の望月です。
AWS CLI でも EC2 Image Builder やってみたいよね。わかります。
そこで EC2 Image Builder のパイプラインを AWS CLI で実行してみました。新サービスのため、最新の AWS CLI が必要となるため、最新の AWS CLI のインストールから紹介します。
やってみた
最新の AWS CLI をインストール
AWS CLI で Image Builder を利用できるのが、バージョン 1.16.293 からのため、最新の AWS CLI をインストールします。
ここでは Amazon Linux 2 を利用して、最新の AWS CLI をインストールしています。 以下、試してみた Amazon Linux 2 の AMI になります。
- Amazon Linux 2
- AMI ID: amzn2-ami-hvm-2.0.20191116.0-x86_64-gp2 (ami-068a6cefc24c301d2)
パッケージでインストールされている AWS CLI が古いため、パッケージを削除します。
$ aws --version aws-cli/1.16.102 Python/2.7.16 Linux/4.14.152-127.182.amzn2.x86_64 botocore/1.12.92 $ rpm -qi awscli Name : awscli Version : 1.16.102 Release : 1.amzn2.0.1 Architecture: noarch Install Date: Mon 18 Nov 2019 10:59:12 PM UTC Group : Unspecified Size : 4321651 License : ASL 2.0 and MIT Signature : RSA/SHA256, Sat 16 Feb 2019 12:02:18 AM UTC, Key ID 11cf1f95c87f5b1a Source RPM : awscli-1.16.102-1.amzn2.0.1.src.rpm Build Date : Thu 14 Feb 2019 06:13:11 PM UTC Build Host : build.amazon.com Relocations : (not relocatable) Packager : Amazon Linux Vendor : Amazon Linux URL : http://aws.amazon.com/cli Summary : Universal Command Line Environment for AWS Description : This package provides a unified command line interface to Amazon Web Services. $ sudo yum remove awscli
pip で最新の AWS CLI をインストールします。
$ sudo yum install python-pip $ source ${HOME}/.bash_profile $ aws --version aws-cli/1.16.294 Python/2.7.16 Linux/4.14.152-127.182.amzn2.x86_64 botocore/1.13.30
EC2 Image Builder が使えることを確認します。
$ aws imagebuilder help
IAMロールの作成
EC2 Image Builder を実行できるように EC2 IAM ロールを作成し ImageBuilderFullAccess を割り当てます。
IAMポリシーを以下ポリシーで作成し、このポリシーを割り当てた IAM ロールを作成します。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "imagebuilder:*" ], "Resource": "*" } ] }
AWS CLI を最新にした EC2 インスタンスに作成した IAM ロールを割り当てます。
コマンド実行
コマンドの実行にはイメージパイプラインの ARN が必要となります。作成したイメージパイプラインの ARN は EC2 Image Builder サービスページの Image pipelines ページで確認できます。
下記コマンドで、パイプラインを実行します。
$ aws --region ap-northeast-1 imagebuilder start-image-pipeline-execution --image-pipeline-arn '' { "imageBuildVersionArn": "/1.0.0/2", "requestId": "xxxx-xxxx-xxxx-xxxx-xxxx", "clientToken": "xxxx-xxxx-xxxx-xxxx-xxxx" }
Image pipelines ページの実行したパイプラインをクリックし、詳細ページの Output images から先程実行したバージョン "1.0.0/2" が実行されたことが確認できます。
まとめ
AWS CLI を利用して、EC2 Image Builder のパイプラインを実行してみました。
これは次にやってみたいことの前準備という感じで、次のブログはこれをやってみるんだろうなというのがバレバレかと思いますが、次回は S3 にデプロイするファイルを Put したら、CodePipe を利用して、自動的に EC2 Image Builder のパイプラインが実行されるように CI/CD への組み込みを試してみたいと思います。
また、新サービスがどんどん発表され、AWS CLI ががんがんバージョンアップされているので、AWS CLI で試したい人は pip で AWS CLI をインストールしていきましょう。
私が書いた EC2 Image Builder 一覧
[re:Invent 2019] EC2 Image Builder でコンポーネントを作成してみた #reinvent
[re:Invent 2019] EC2 Image Builder で S3 からコンテンツをデプロイしてみた #reinvent
[re:Invent 2019] EC2 Image Builder で複数コンポーネントを実行してみた #reinvent